Load libraries and data. Shorten column names to make it manageable.
## ── Attaching packages ─────────────────────────────────────────────────────── tidyverse 1.3.0 ──
## ✓ ggplot2 3.3.2 ✓ purrr 0.3.4
## ✓ tibble 3.0.3 ✓ dplyr 1.0.1
## ✓ tidyr 1.1.1 ✓ stringr 1.4.0
## ✓ readr 1.3.1 ✓ forcats 0.5.0
## ── Conflicts ────────────────────────────────────────────────────────── tidyverse_conflicts() ──
## x dplyr::filter() masks stats::filter()
## x dplyr::lag() masks stats::lag()
## Parsed with column specification:
## cols(
## .default = col_character(),
## `Num Fields Filled out` = col_double(),
## `Include?` = col_double(),
## `Valid Response Count` = col_double()
## )
## See spec(...) for full column specifications.
Automatically lowercases, and converts strings to one-token-per-row format to show frequencies and basic bar charts.
This will be done for each column (question), as a starting point.
## Joining, by = "word"
To fully answer What DAO(s) do you work for?, we have to isolate all words and
# Unique DAO names
# marrow, mstable, cre8rdao, badger, raidguild, metagame, metafactory, defiant pixel, nfdao, punks, cedgedao, sushi, dalten, metacartel, metacartel ventures, bankless, tally, friends, pleasrdao, seed, forefront, fingerprints, gitcoin, superrare, makerdao, dorg, railgun, mycryptoheroes, daohaus, uber haus, hero dao, indexcoop, dao square, rarible dao, genesis dao, dappnode, radiologex, gridology, yam, alchemy, 1hive, pharo dao, pooltogether, commitpool, machi x dao, peerion dao, doingud, uniswap, gryffone, harmony dao, buidlguidl, airswap.io, aave grants, sourcecred, good ghosting, proof of beauty hash, meebits dao, alas dao, buzzed bear hideout, mcn ventures, fraktal dao, decrypt, synthetix, balancer, flow community, daosquare, aladdindao, sandao, compound, gamedao, halodao, qidao, soudao, curve dao, coordinape, nash dao, discord, ocean, parity, sporkdao, epns, scribedao, trips community, daostack, opolis, aragon, renaissancedao, rabbit hole, cryptex, olympus, mirror
daos_work_long <- daos_work_tbl %>%
unnest_tokens(word, text) %>%
anti_join(stop_words) %>%
count(word, sort = TRUE)
## Joining, by = "word"
daos_work_long$bin <- NA
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "cre8")==TRUE), "cre8rdao", "NA")
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "mstable")==TRUE), "mstable", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "marrow")==TRUE), "marrow dao", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "badger")==TRUE), "badger dao", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "raid")==TRUE), "raid guild", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "metagame")==TRUE), "metagame", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "metaf")==TRUE), "metafactory", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "defiant")==TRUE), "defiant pixel society", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "nfd")==TRUE), "nfdao", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "punks")==TRUE), "punks dao", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "cedge")==TRUE), "cedge dao", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "sushi")==TRUE), "sushi protocol", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "dal")==TRUE), "dalten collective", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "ventures")==TRUE), "metacartel ventures", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "metacartel")==TRUE), "metacartel", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "bank")==TRUE), "bankless dao", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "tally")==TRUE), "tally", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "friend")==TRUE), "friends with benefits", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "fwb")==TRUE), "friends with benefits", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "pleas")==TRUE), "pleasrdao", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "seed")==TRUE), "seed club", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "fore")==TRUE), "forefront", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "finger")==TRUE), "fringerprints", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "gitc")==TRUE), "gitcoin dao / gitcoin", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "gtc")==TRUE), "gitcoin dao / gitcoin", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "super")==TRUE), "superrare dao", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "daomaker")==TRUE), "daomaker", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "maker")==TRUE), "makerdao", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "mkrdao")==TRUE), "makerdao", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "makedaos")==TRUE), "makerdao", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "dorg")==TRUE), "dOrg", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "rail")==TRUE), "railgun", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "mycryptoh")==TRUE), "mycryptoheroes", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "daoh")==TRUE), "daohaus", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "uber")==TRUE), "uber haus", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "hero_")==TRUE), "hero dao", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "index")==TRUE), "index coop", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "square")==TRUE), "dao square", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "rally")==TRUE), "rally.io", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "rarible")==TRUE), "rarible dao", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "genosis")==TRUE), "genesis dao", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "dappnode")==TRUE), "dappnode", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "radiologex")==TRUE), "radiologex", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "gridology")==TRUE), "gridology", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "yam")==TRUE), "yam", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "alchemy")==TRUE), "alchemy", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "1hive")==TRUE), "1hive", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "pharo")==TRUE), "pharo dao", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "poolt")==TRUE), "pooltogether", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "commitpool")==TRUE), "commitpool", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "machix")==TRUE), "machi x dao", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "peerion")==TRUE), "peerion dao", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "dxdao")==TRUE), "dxdao", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "karma")==TRUE), "karma dao", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "doingud")==TRUE), "doingud", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "unis")==TRUE), "uniswap", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "gryffone")==TRUE), "gryffone", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "harmony")==TRUE), "harmony dao", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "buidl")==TRUE), "buidlguidl", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "airs")==TRUE), "airswap.io", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "aave")==TRUE), "aave grants", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "sourcecred")==TRUE), "sourcecred", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "ghosting")==TRUE), "goodghosting", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "beauty")==TRUE), "historians dao", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "historian")==TRUE), "historians dao", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "meebit")==TRUE), "meebits dao", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "alas")==TRUE), "alas dao", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "buzz")==TRUE), "buzzed bear hideout", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "mcn")==TRUE), "mcn ventures", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "fraktal")==TRUE), "fraktal dao", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "decrypt")==TRUE), "decrypt", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "pollen")==TRUE), "pollen dao", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "synthetix")==TRUE), "synthetix", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "balancer")==TRUE), "balancer", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "flow")==TRUE), "flow community", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "daosquare")==TRUE), "daosquare", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "daosuqre")==TRUE), "daosquare", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "aladdindao")==TRUE), "aladdindao", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "aladdin")==TRUE), "aladdindao", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "sandao")==TRUE), "sandao", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "compound")==TRUE), "compound", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "gamedao")==TRUE), "gamedao", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "halo")==TRUE), "halodao", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "qidao")==TRUE), "qidao", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "soudao")==TRUE), "soudao", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "curve")==TRUE), "curve dao", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "coordinape")==TRUE), "coordinape", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "nash")==TRUE), "nash dao", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "discord")==TRUE), "discord", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "ocean")==TRUE), "ocean dao", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "parity")==TRUE), "parity", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "sporkdao")==TRUE), "sporkdao", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "epns")==TRUE), "ethereum push notification service", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "scribedao")==TRUE), "scribeddao", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "trips")==TRUE), "trips community", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "daostack")==TRUE), "daostack", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "opolis")==TRUE), "opolis", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "aragon")==TRUE), "aragon", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "renaissancedao")==TRUE), "renaissancedao", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "rabbhithole")==TRUE), "rabbithole", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "cryptex")==TRUE), "cryptex.finance", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "olympus")==TRUE), "olympus dao", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "mirror")==TRUE), "mclubdao", daos_work_long$bin)
daos_work_long %>%
filter(bin != "NA") %>%
select(bin, n) %>%
ggplot(aes(x = reorder(bin, n), y = n, fill = bin)) +
geom_col() +
theme_minimal() +
theme(
legend.position = "none",
axis.text.x = element_text(angle = 45, hjust = 1)
) +
labs(
x = "DAOs / Protocols",
y = "Number of Responses"
)
Manual data munging needed.
## Joining, by = "word"
## Joining, by = "word"
Cleaner way to present data. More manual process. Split string by comma, unnest, then mnaully add duplicates, then manually delete, then visualize.
## Joining, by = "word"
## Joining, by = "word"
## Joining, by = "word"
## Joining, by = "word"
## Joining, by = "word"
## Joining, by = "word"
NOTE: We want to keep stop words like ‘no’ or ‘yes’ here.
## Joining, by = "word"
## Joining, by = "word"
## Joining, by = "word"
## Joining, by = "word"
## Joining, by = "word"
## Joining, by = "word"
## Joining, by = "word"
## Joining, by = "word"
## Joining, by = "word"
## Joining, by = "word"
## Joining, by = "word"
Response options for this question are too unclear to make sense. Will prioritize other charts then come back to this one with sufficient time.
## Joining, by = "word"
Note that the echo = FALSE parameter was added to the code chunk to prevent printing of the R code that generated the plot.